The present invention relates generally to storing data on an integrated circuit and more particularly to protecting data stored in a battery powered memory on a field programmable gate array (FPGA).
The circuit complexity and the tasks performed by integrated circuits such as field programmable gate arrays have greatly increased the last few years. Highly sophisticated software, or applications, run on programmable logic elements that are configured to perform intricate user-defined functions.
Often these applications need to store data in a memory, for example, an application may store data at different times for later use. Other important data such as chip identification, license information, and encryption keys may need to be stored. Unfortunately, if power is removed from the memory, this data is lost unless the memory is nonvolatile.
But nonvolatile memory typically requires processing that is either not compatible with processing technologies used to manufacture FPGAs or uses extra processing steps that greatly increase device costs. Also, in many situations, the security of the data stored in memory is important, so it is desirable to quickly erase it if a tamper is detected. Unfortunately, it is difficult to quickly erase nonvolatile memory. Further, data stored in a nonvolatile memory can be discovered through reverse engineering.
To protect this data, it is important to also limit access to it, such that the data may not be stolen or copied by a nefarious user or application. For example, a configuration design may be protected by encrypting it with a key. If this key is stored in memory for use during decryption, it is desirable to protect and limit access to this key.
Thus, what is needed are circuits, methods, and apparatus that provide a memory for an FPGA that retains data when power to the FPGA is removed, but is compatible with conventional FPGA manufacturing processes and can quickly be erased in the event of a tamper or other unauthorized event. Also, it is desirable to provide further protection by limiting access to data stored in the memory.